package com.idp.app.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DateUtils {

    // 正则表达式用于校验yyyy年MM月dd日格式
    private static final String DATE_PATTERN = "^(\\d{4})年(\\d{2})月(\\d{2})日$";
    // SimpleDateFormat 用于格式化日期
    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");

    static {
        // 设置SimpleDateFormat为严格模式
        dateFormat.setLenient(false);
    }


    public static boolean validateAndFormat(String dateStr) {
        Pattern pattern = Pattern.compile(DATE_PATTERN);
        Matcher matcher = pattern.matcher(dateStr);

        // 如果匹配正则表达式，则直接返回true
        if (matcher.matches()) {
            return true;
        }
        return false;
    }

    // 将字符串转换为 yyyy年MM月dd日 格式
    public static String reformatDate(String dateStr) {
        try {
            // 匹配 yyyy年MM月 格式并补充 01日
            if (dateStr.matches("^\\d{4}年\\d{2}月$")) {
                dateStr += "01日";
            }

            // 解析并格式化日期
            dateFormat.parse(dateStr);
            return dateStr;
        } catch (ParseException e) {
            // 如果无法解析，则返回 null
            return "1999年01月01日";
        }
    }

}
